<!-- 进来先有一个默认的地理位置，然后打开进行选择 -->
<template>
	<view class="main">
		<view class="form-item">
			<view class="form-item-1" style="border: none;" @click="goMap()">
				<map style="width: 100%; height: 200px;float: left;" :latitude="defaultPosition.latitude"
					:longitude="defaultPosition.longitude">
				</map>
				<view style="width: 100%;height: 50rpx;float: left;"></view>
			</view>
		</view>
	</view>

</template>

<script setup>
	const defaultPosition = ref({
		latitude: 39.909,
		longitude: 116.39742
	})
	const props = defineProps({
		latitude: Number,
		longitude: Number
	})
	const response = ref({
		latitude: 39.909,
		longitude: 116.39742,
		address: "",
		name: ""
	})
	const emit = defineEmits(['position'])
	onMounted(() => {
		if (props.latitude) {
			defaultPosition.value.latitude = props.latitude;
			response.value.latitude = props.latitude;
		}
		if (props.longitude) {
			defaultPosition.value.longitude = props.longitude;
			response.value.longitude = props.longitude;
		}
	})
	
	function goMap() {
		uni.chooseLocation({
			success: (res) => {
				console.log("res", res);
				// this.getRegionFn(res);
				response.value = res
				emit('position', response.value);
			},
			fail: (err) => {
				// 如果用uni.chooseLocation没有获取到地理位置，则需要获取当前的授权信息，判断是否有地理授权信息
				console.log("err", err)
				uni.getSetting({
					success: (res) => {
						console.log(res);
						var status = res.authSetting;
						if (!status['scope.userLocation']) {
							// 如果授权信息中没有地理位置的授权，则需要弹窗提示用户需要授权地理信息
							uni.showModal({
								title: "是否授权当前位置",
								content: "需要获取您的地理位置，请确认授权，否则地图功能将无法使用",
								success: (tip) => {
									if (tip.confirm) {
										// 如果用户同意授权地理信息，则打开授权设置页面，判断用户的操作
										uni.openSetting({
											success: (data) => {
												// 如果用户授权了地理信息在，则提示授权成功
												if (data.authSetting[
														'scope.userLocation'
													] === true) {
													uni.showToast({
														title: "授权成功",
														icon: "success",
														duration: 1000
													})
													// 授权成功后，然后再次chooseLocation获取信息
													uni.chooseLocation({
														success: (
															res
														) => {
															console
																.log(
																	"详细地址",
																	res
																);
															// this.getRegionFn(res);
														}
													})
												} else {
													uni.showToast({
														title: "授权失败",
														icon: "none",
														duration: 1000
													})
												}
											}
										})
									}
								}
							})
						}
					},
					fail: (res) => {
						uni.showToast({
							title: "调用授权窗口失败",
							icon: "none",
							duration: 1000
						})
					}
				})
			}
		});
	}
</script>

<style>
	Page {
		background-color: #F2F2F2;
		font-size: 30rpx;
	}

	.main {
		width: 100%;
		float: left;
		height: auto;
		margin-top: 150rpx;
	}

	.form-item {
		width: 100%;
		float: left;
		background: #FFFFFF;
		height: auto;
	}

	.form-item-1 {
		width: 84%;
		loat: left;
		height: 90rpx;
		border-bottom: 2rpx solid #CCCCCC;
		margin-left: 8%;
	}
</style>